<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<ui:composition xmlns="http://www.w3.org/1999/xhtml"  
    xmlns:h="http://java.sun.com/jsf/html"  
    xmlns:f="http://java.sun.com/jsf/core"
    xmlns:ui="http://java.sun.com/jsf/facelets"
    xmlns:p="http://primefaces.org/ui"
    template="/plantillas/plantilla-sistema.xhtml">
    <ui:define name="cabecera">
        <title>Gestión de Restauraciones</title>
        <link rel="shortcut icon"  href="../../resources/imagenes/favicon.ico" />
    </ui:define>
    <ui:define name="contenido">
        <center>
            <p:panel id="restauracionPnl" header="Restauraciones" style="width: 950px">
                <h:form id="tablaRestauracionFrm">
                     <p:dataTable id="tablaRestauracion" var="restauracion" resizableColumns="true" 
                                  paginator="true" paginatorPosition="bottom" rows="10"
                                  selectionMode="single" rowKey="#{restauracion.especimen.codigoespecimen}"
                                  value="#{restauracionBean.listaRestauraciones}" 
                                  emptyMessage="No hay registros disponibles.">
                         <p:column filterBy="#{restauracion.especimen.codigoespecimen}"
                                   sortBy="#{restauracion.especimen.codigoespecimen}"
                                   headerText="Espécimen" filterMatchMode="contains">
                             <h:outputText id="especimenTxt" value="#{restauracion.especimen.codigoespecimen}"  />
                         </p:column>
                         <p:column filterBy="#{restauracion.autoriza}" sortBy="#{restauracion.autoriza}"
                                   headerText="Autoriza" filterMatchMode="contains">       
                            <h:outputText id="autorizaTxt" value="#{restauracion.autoriza}"  />
                         </p:column>
                         <p:column filterBy="#{restauracion.realiza}" sortBy="#{restauracion.realiza}"   
                                   headerText="Realiza" filterMatchMode="contains">       
                            <h:outputText id="realizaTxt" value="#{restauracion.realiza}"  />
                         </p:column>
                         <p:column filterBy="#{restauracion.recibe}" sortBy="#{restauracion.recibe}"   
                                   headerText="Recibe" filterMatchMode="contains">       
                            <h:outputText id="recibeTxt" value="#{restauracion.recibe}"  />
                         </p:column>
                         <p:column filterBy="#{restauracion.fechainicial}" sortBy="#{restauracion.fechainicial}"
                                   headerText="Inicio" filterMatchMode="contains">
                             <h:outputText id="fechainicialTxt" value="#{restauracion.fechainicial}">
                                 <f:convertDateTime pattern="dd/MM/yyyy"/>
                             </h:outputText>
                         </p:column>
                         <p:column filterBy="#{restauracion.fechafinal}" sortBy="#{restauracion.fechafinal}"
                                   headerText="Finalización" filterMatchMode="contains">
                             <h:outputText id="fechafinalTxt" value="#{restauracion.fechafinal}">
                                 <f:convertDateTime pattern="dd/MM/yyyy"/>
                             </h:outputText>
                         </p:column>
                         <p:column filterBy="#{restauracion.observaciones}" sortBy="#{restauracion.observaciones}"   
                                   headerText="Observaciones" filterMatchMode="contains">       
                            <h:outputText id="observacionesTxt" value="#{restauracion.observaciones}"  />
                         </p:column>
                         <p:column headerText="Modificar">
                             <center>
                                 <p:commandButton id="modificarBtn" title="Modificar" icon="ui-icon-pencil"
                                                  actionListener="#{restauracionBean.prepararModificacion(restauracion)}"
                                                  update=":modificarRestauracionFrm:modificarRestauracionPnl"
                                                  oncomplete="modificarRestauracionWgt.show()"/>
                             </center>
                         </p:column>
                     </p:dataTable>
                    <p:commandButton id="nuevoBtn" value="Nueva Restauración"
                                    actionListener="#{restauracionBean.prepararAdicion}"
                                    update=":guardarRestauracionFrm:guardarRestauracionPnl" 
                                    oncomplete="guardarRestauracionWgt.show()" 
                                    icon="ui-icon-document" title="Agregar nueva restauración"/>
                </h:form>
            </p:panel>
        </center>
    </ui:define>
    <ui:define name="extra">
        <p:dialog id="guardarRestauracionDlg" header="Nueva Restauración" widgetVar="guardarRestauracionWgt"
                  resizable="false" modal="true" showEffect="false">
            <h:form id="guardarRestauracionFrm">
                <h:panelGrid id="guardarRestauracionPnl" columns="3" style="margin-bottom:10px">
                    <p:outputLabel for="especimenTxt" value="Espécimen: " />
                    <p:selectOneMenu id="especimenTxt" required="true"
                                     value="#{restauracionBean.restauracion.especimen}">
                        <f:selectItem itemLabel="Seleccione" itemValue="" />
                        <f:selectItems value="#{restauracionBean.itemsEspecimenes}"/>
                        <f:converter converterId="especimenConverter" />
                    </p:selectOneMenu>
                    <p:message for="especimenTxt" id="especimenMsg" showDetail="true"/>
                    
                    <p:outputLabel for="autorizaTxt" value="Autoriza: " />
                        <p:inputText id="autorizaTxt" required="true" title="Obligatorio"
                                     value="#{restauracionBean.restauracion.autoriza}">
                            <f:validateLength minimum="2" />
                            <p:ajax update="autorizaMsg" event="keyup" />
                        </p:inputText>
                        <p:message for="autorizaTxt" id="autorizaMsg"/>
                    
                    <p:outputLabel for="realizaTxt" value="Realiza: " />
                        <p:inputText id="realizaTxt" required="true" title="Obligatorio"
                                     value="#{restauracionBean.restauracion.realiza}">
                            <f:validateLength minimum="2" />
                                <p:ajax update="realizaMsg" event="keyup" />
                        </p:inputText>
                        <p:message for="realizaTxt" id="realizaMsg"/>
                    
                    <p:outputLabel for="fechainicialTxt" value="Fecha de Realización: " />
                    <p:calendar id="fechainicialTxt" value="#{restauracionBean.restauracion.fechainicial}"
                                mode="popup" pattern="dd/MM/yyyy" title="Elija una fecha"/>
                    <p:message for="fechainicialTxt" id="fechainicialMsg"/>
                    
                        <p:outputLabel for="observacionesTxt" value="Observaciones:" />
                    
                    <p:inputTextarea id="observacionesTxt" value="#{restauracionBean.restauracion.observaciones}"
                                    autoResize="false" title="Opcional"
                                    counterTemplate="Restan {0} caracteres." maxlength="1000"/>
                    <p:message for="observacionesTxt" id="observvacionesMsg"/>
                    
                    <p:commandButton id="guardarBtn" actionListener="#{restauracionBean.agregarRestauracion}" 
                                     oncomplete=":guardarRestauracionWgt.hide()" value="Guardar"
                                     update=":tablaRestauracionFrm:tablaRestauracion" icon="ui-icon-disk"
                                     title="Guardar"/>
                    <p:commandButton value="Cancelar" type="button" onclick="guardarRestauracionWgt.hide()" 
                                     icon="ui-icon-cancel" title="Cancelar"/>
                </h:panelGrid>
            </h:form>
        </p:dialog>
        <p:dialog id="modificarRestauracionDlg" header="Modificar Restauración" widgetVar="modificarRestauracionWgt" 
                  resizable="false" modal="true" showEffect="false">
            <h:form id="modificarRestauracionFrm">
                <h:panelGrid id="modificarRestauracionPnl" columns="2" style="margin-bottom:10px">
                    <h:outputText value="Espécimen: "/>
                    <h:outputText id="especimenTxt" value="#{restauracion.especimen.codigoespecimen}"/>
                    <p:outputLabel for="recibeTxt" value="Recibe: " />
                    <p:column>
                        <p:inputText id="recibeTxt" required="true" title="Obligatorio"
                                     value="#{restauracionBean.restauracion.recibe}">
                            <f:validateLength minimum="2" />
                                <p:ajax update="recibeMsg" event="keyup" />
                        </p:inputText>
                        <p:message for="recibeTxt" id="recibeMsg"/>
                    </p:column>
                    <p:outputLabel for="fechafinalTxt" value="Fecha de Finalización: " />
                    <p:calendar id="fechafinalTxt" value="#{restauracionBean.restauracion.fechafinal}"
                                mode="popup" pattern="dd/MM/yyyy" title="Elija una fecha"/>
                    <p:column>
                        <p:outputLabel for="observacionesTxt" value="Observaciones:" />
                        <br/>
                        <h:outputText id="contador" style="font-size: 80%"/>
                    </p:column>
                    <p:inputTextarea id="observacionesTxt" value="#{restauracionBean.restauracion.observaciones}"
                                     counter="contador" autoResize="false" title="Opcional"
                                     counterTemplate="Restan {0} caracteres." maxlength="500"/>
                    <p:commandButton id="guardarBtn" actionListener="#{restauracionBean.actualizarRestauracion}" 
                                     oncomplete=":modificarRestauracionWgt.hide()" value="Guardar"
                                     update=":tablaRestauracionFrm:tablaRestauracion" icon="ui-icon-disk"
                                     title="Guardar"/>
                    <p:commandButton value="Cancelar" type="button" onclick="modificarRestauracionWgt.hide()" 
                                     icon="ui-icon-cancel" title="Cancelar"/>
                </h:panelGrid>
            </h:form>
        </p:dialog>
    </ui:define>
</ui:composition>